import { ChatHistory } from './lib/chat/history';
import { CLIInterface } from './lib/interface/cli';
import { ApiService } from './services/api.service';
import { ChatLogger } from './lib/logger';
import { ChatStorage } from './lib/chat/storage';
import { SessionSelector } from './lib/interface/session';

// 启动应用
async function main() {
  // 初始化核心组件
  const storage = new ChatStorage(); // 初始化持久化工具
  const sessionSelector = new SessionSelector(storage) // 会话选择cli工具
  const isLoadHistory = await sessionSelector.selectSession() // 提示用户选择，返回结果


  const chatHistory = new ChatHistory(); // 初始化对话历史管理器
  await chatHistory.initialize(isLoadHistory) // 根据用户选择，决定
  const logger = new ChatLogger(); // 初始化日志记录器
  const apiService = new ApiService(chatHistory); // 初始化API服务处理器：多轮对话依赖对话历史管理器
  const cli = new CLIInterface(chatHistory, apiService, logger); // 初始化cli终端
  cli.start();
}

main()
